﻿#ifndef memPAGE
#define memPAGE
#define MEMORY_SIZE 8192//8GB   需要是PAGE_SIZE的整数倍
#define PAGE_SIZE 8//2MB
#include <iostream>
#include<fstream>
#include <sstream>
#include <stdlib.h>
#include <ctime>
#include <iomanip>
#include<bits/stdc++.h>
#include"process.h"


using namespace std;

class PAGE{//操作系统的页
public:
    int memory_size;//内存大小
    int page_size;//页大小
    int used_frame;//已使用的内存大小
    float Utilization;//利用率 used_frame/memory_size
    int free_page;//剩余页数
    vector<int> used_pagemap;//0没用  1在用

    PAGE(){//构造函数
        memory_size = MEMORY_SIZE;
        page_size = PAGE_SIZE;
        used_frame = 0;
        free_page = MEMORY_SIZE / PAGE_SIZE;
        Utilization = 0;
        for(int i=0;i<free_page;++i){
            used_pagemap.push_back(0);
        }
    }
    void dispatch_memory(process* PROCESS);
    void Delete(process* PROCESS);
};




#endif // PCB

